package com.isaiah.map;

/**
 * @Title: 映射操作接口
 * @Description: ${todo}
 * @author: Haijun
 * @emial: isaiah@sohu.com
 * @date 2020/4/2920:38
 */
public interface Map<K, V> {

    /**
     * 添加key-value
     * @param key
     * @param value
     */
    void add(K key, V value);

    /**
     * 根据key删除value
     * @param key
     * @return
     */
    V remove(K key);

    /**
     * 根据key判断是否包含对应的value
     * @param key
     * @return
     */
    boolean contains(K key);

    /**
     * 根据key获取对应的value
     * @param k
     * @return
     */
    V get(K k);

    /**
     * 根据key设置新的value值
     * @param key
     * @param value
     */
    void set(K key, V value);

    /**
     * 返回key-value对象的个数
     * @return
     */
    int size();

    /**
     * 判断Map是否为空
     * @return
     */
    boolean isEmpty();
}
